16.7 Das Steuerelement »RichTextBox«
 
Während eine Textbox dem Anwender Text anzeigt, der nur eine einheitliche Schriftdarstellung hat, können in einer RichTextBox einzelne Passagen oder auch nur Wörter unterschiedliche Formate aufweisen (Größe, Schriftart, Schriftfarbe usw.). Das Rich Text Format, kurz RTF, ist ein Format, das den Ausgabetext durch Textinformationen beschreibt.
Das Steuerelement bietet eine große Anzahl von Eigenschaften und Methoden an, um die Textdarstellung zu beeinflussen. Diese alle aufzuzählen und zu erläutern, würde hier den Rahmen sprengen. Deshalb wollen wir uns auf die allgemeine Handhabung und einige exemplarisch ausgewählte Eigenschaften und Methoden beschränken.
Wie bei einem einfachen Eingabefeld finden wir den Text einer RichTextBox in der Eigenschaft Text wieder. Formatiert wird nur der Text im Steuerelement, der entweder durch den Anwender oder durch Programmcode mit den Eigenschaften SelectionStart und SelectionLength markiert worden ist. Die markierten Textpassagen können mit diversen SelectionXxx-Eigenschaften manipuliert werden.
Der Inhalt eines RichTextBox-Steuerelements wird nicht im TXT-Format als ASCII-Datei gespeichert, sondern in einer Datei mit der Endung RTF, weil ansonsten die Formatierungsinformationen verloren gehen würden. Die Klasse RichTextBox erleichtert uns aber das Laden und Speichern einer RTF-Datei durch die beiden Methoden LoadFile und SaveFile weitestgehend. Beide Methoden sind überladen. Im einfachsten Fall muss nur eine Zeichenfolge mit der Pfadangabe an die Datei übergeben werden, in der die Textinformation gespeichert bzw. aus der die Textinformationen gelesen werden sollen.
Tabelle 16.12 Methoden und Eigenschaften des »RichTextBox«-Steuerelements (Auszug)
| Eigenschaften/Methoden
|
Beschreibung
|
| SelectionColor
|
Ruft die Textfarbe der aktuellen Auswahl ab oder legt sie fest.
|
| SelectionFont
|
Ruft die Schriftart der aktuellen Auswahl ab oder legt sie fest.
|
| SelectionLength
|
Liefert die Anzahl der markierten Zeichen einer Zeichenfolge ab oder legt sie fest.
|
| SelectionStart
|
Ruft den Startpunkt des markierten Textes ab oder legt diesen fest.
|
| LoadFile
|
(Methode) Laden einer RTF-Datei
|
| SaveFile
|
(Methode) Speichern einer RTF-Datei
|
Das folgende Beispielprogramm will Ihnen den Einsatz einiger Eigenschaften und Methoden demonstrieren, die in der Tabelle 16.12 aufgeführt sind. So können Sie zum Beispiel einzelne Buchstaben markieren und diese in der Farbe Rot anzeigen lassen, wenn Sie auf die entsprechend bezeichnete Schaltfläche klicken. Gespeichert wird der Inhalt des RichTextBox-Steuerelements, dessen Bezeichner rtf lautet, unter dem Dateinamen myFile.rtf in dem Ordner, in dem sich die ausführbare Datei der Anwendung befindet.
| // ---------------------------------------------------------
|
| // Beispiel: ...\Kapitel 16\RichTextBoxDemo
|
| // ---------------------------------------------------------
|
| // fette Formatierung
|
| private void btnBold_Click(object sender, EventArgs e) {
|
| rtf.SelectionFont = new Font(rtf.SelectionFont,
|
| this.rtf.SelectionFont.Style ^ FontStyle.Bold);
|
| rtf.Focus();
|
| }
|
| // kursive Formatierung
|
| private void btnItalic_Click(object sender, EventArgs e) {
|
| rtf.SelectionFont = new Font(rtf.SelectionFont,
|
| this.rtf.SelectionFont.Style ^ FontStyle.Italic);
|
| rtf.Focus();
|
| }
|
| // Größenänderung
|
| private void btnSize_Click(object sender, EventArgs e) {
|
| rtf.SelectionFont = new Font(rtf.SelectionFont.Name,
|
| Convert.ToSingle(txtSize.Text));
|
| rtf.Focus();
|
| }
|
| // Farbänderung
|
| private void btnColor_Click(object sender, EventArgs e) {
|
| this.rtf.SelectionColor = Color.Red;
|
| }
|
| // RTF-Dokument speichern
|
| private void btnSave_Click(object sender, EventArgs e) {
|
| try {
|
| rtf.SaveFile(Application.StartupPath + "\\myFile.rtf");
|
| }
|
| catch (IOException ioe) {
|
| MessageBox.Show(ioe.Message);
|
| }
|
| }
|
| //RTF-Dokument laden
|
| private void btnLoad_Click(object sender, EventArgs e) {
|
| try {
|
| rtf.LoadFile(Application.StartupPath + "\\myFile.rtf");
|
| }
|
| catch (IOException ioe) {
|
| MessageBox.Show(ioe.Message);
|
| }
|
| }
|
 Hier klicken, um das Bild zu vergrößern
Abbildung 16.11 Ausgabe des Beispiels »RichTextBox« |